Modify header-reading code to better handle different variants of .mps files
authorparkrrrr <parkrrrr@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sat, 19 Jul 2003 16:26:01 +0000 (16:26 +0000)
committerparkrrrr <parkrrrr@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sat, 19 Jul 2003 16:26:01 +0000 (16:26 +0000)
gpsbabel/mapsource.c

index 29b586320294e52fcd0c28c0061f6455df943bac..553a86f97f18fa328a94505ab5d7e13a06b43c60 100644 (file)
@@ -164,7 +164,15 @@ mps_read(void)
        int lon;
        waypoint *wpt;
 
-       fread(hdr, 45, 1, mps_file_in);
+       mps_readstr( hdr, sizeof(hdr));
+       if ( strcmp( hdr, "MsRcd" )) {
+               fatal(MYNAME ": This doesn't look like a mapsource file.\n");
+       }
+       fread( hdr, 7, 1, mps_file_in ); /* a DWORD and a string, looks like. */
+       fread(&reclen, 4, 1, mps_file_in );
+        reclen = le_read32(&reclen);
+       fseek( mps_file_in, reclen+1, SEEK_CUR); 
+       /* fread(hdr, 45, 1, mps_file_in); */
 #ifdef DUMP_ICON_TABLE
        printf("static icon_mapping_t icon_table[] = {\n");
 #endif